Functies die een functie retourneren
Beschrijving
Zoals eerder vermeld, een functie retourneert altijd een waarde, en als het niet expliciet gebeurd, dan gebeurt het impliciet door undefined terug te geven.
Een functie kan slechts één waarde als resultaat teruggeven, en deze waarde kan net zo goed een andere functie zijn:
function a() { alert('A!'); return function () { alert('B!'); }; }
In dat voorbeeld wordt de functie a()
uitgevoerd en zegt 'A' en het retourneert een andere functie die anders doet en 'B' zegt.
Je kan de retourwaarde van de functie a()
toekennen aan en variabele. In die variabele zit dan het codeblok van de functie:
var resultaatVanA = a();
Je kan die viaribele vervolgens laten uitvoeren als een gewone functie door er ronde haken achter te plaatsen:
resultaatVanA();
Hier zal de eerste lijn 'A' zeggen en de tweede 'B'.
Als je de geretourneerde functie onmiddellijk wilt uitvoeren zonder het eerst aan een variabele toe te kennen kan je dat door er ronde haken aan toe te voegen. Het eindresultaat is het zelfde:
a()();
Je kan dat uitproberen op CodePen. Open daarvoor het Console venster: